package com.my.study.springframework.context;

import com.my.study.springframework.bean.BeansException;

/**
 * @author: yidujun
 * @create: 2021/06/22 16:53
 */
public interface ConfigurableApplicationContext extends ApplicationContext {

    /**
     * 刷新容器
     *
     * @throws BeansException
     */
    void refresh() throws BeansException;

    /**
     * 向 JVM 运行时注册关闭钩子，在jvm关闭时关闭这个容器
     */
    void registerShutdownHook();

    /**
     * 关闭容器，释放这个容器可能持有的所有资源和锁
     */
    void close();

}
